home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / stdwin / H / _ARGS.h next >
Text File  |  1995-12-21  |  1KB  |  44 lines

  1. /* Define _ARGS(x) as either x or () depending on an educated guess
  2.    on the presence of support for prototypes in the compiler.
  3.    The idea is that you declare function with prototypes as follows:
  4.        extern char *malloc _ARGS((unsigned int));
  5.    Watch the double parentheses (you'll quickly get used to them).
  6.    Use _ARGS((void)) to declare a function with no arguments.
  7.    Use things like _ARGS((char *, ...)) to declare printf-like functions.
  8.    
  9.    As a free extra, the macro HAVE_PROTOTYPES is defined if and only if
  10.    prototypes are supported, and the macro 'const' is defined as empty
  11.    if prototypes are not supported.
  12. */
  13.  
  14. #ifndef _ARGS
  15.  
  16. #ifndef HAVE_PROTOTYPES
  17.  
  18. #ifdef __STDC__
  19. #define HAVE_PROTOTYPES
  20. #endif
  21.  
  22. #ifdef THINK_C
  23. #undef HAVE_PROTOTYPES
  24. #define HAVE_PROTOTYPES
  25. #endif
  26.  
  27. #ifdef sgi
  28. #ifdef mips
  29. #define HAVE_PROTOTYPES
  30. #endif
  31. #endif
  32.  
  33. #endif /* HAVE_PROTOTYPES */
  34.  
  35. #ifdef HAVE_PROTOTYPES
  36. #define _ARGS(x) x
  37. #else
  38. #define _ARGS(x) ()
  39. #undef const
  40. #define const /*empty*/
  41. #endif /* HAVE_PROTOTYPES */
  42.  
  43. #endif /* _ARGS */
  44.